#ifndef MACD_H
#define MACD_H
#include "ema.h"
#include <vector>

class Macd
{
private:
    Ema ema12;  // 12周期EMA计算器
    Ema ema26;  // 26周期EMA计算器
    Ema dea;    // DEA（信号线）计算器，通常为9周期
public:

    // MACD计算结果结构体
    struct MACDResult {
        double dif;   // 差离值 = EMA12 - EMA26
        double dea;   // 异同平均数 = DIF的9周期EMA
        double bar;   // 柱状线 = (DIF - DEA) * 2
    };
    Macd(int fastPeriod = 12, int slowPeriod = 26, int signalPeriod = 9);
    void reset();
    std::vector<MACDResult> calculateBatch(const std::vector<double>& prices);
};

#endif // MACD_H
